using System;
using System.Collections;
using System.Collections.Generic;
using System.Xml.Serialization;

using QLTDK.Entities.Base;

namespace QLTDK.Entities.BaseObjects
{
    public class BaseTdTuyenden : EntityObject<int>
    {
        #region Declarations

		private string tenTuyenDen = null;
		private string tuDenDenDen = null;
		private string xa = null;
		
		private CtrCongtrinh maCongTrinhLapDat = null;
		private TdkTudieukhien maTDK = null;
		
		private IList<TdCayden> tdCaydens = new List<TdCayden>();
		private IList<TdDaynguon> tdDaynguons = new List<TdDaynguon>();
		
		#endregion

        #region Constructors

		/// <summary>
        /// Since we want to leverage automatic properties, init appropriate members here.
        /// </summary>
		private void InitMembers()
		{
			TdCaydens = new List<TdCayden>();
			TdDaynguons = new List<TdDaynguon>();
		}
		
		/// <summary>
        /// Creates valid entity object
        /// </summary>
		public BaseTdTuyenden() 
		{ 
			InitMembers();
		}
		
        #endregion

        #region Properties

		[DomainSignature]
		public virtual string TenTuyenDen
        {
            get { return tenTuyenDen; }
			set
			{
				tenTuyenDen = value;
			}
        }

		[DomainSignature]
		public virtual string TuDenDenDen
        {
            get { return tuDenDenDen; }
			set
			{
				tuDenDenDen = value;
			}
        }

		[DomainSignature]
		public virtual string Xa
        {
            get { return xa; }
			set
			{
				xa = value;
			}
        }

		[DomainSignature]
		public virtual CtrCongtrinh MaCongTrinhLapDat
        {
            get { return maCongTrinhLapDat; }
			set
			{
				maCongTrinhLapDat = value;
			}
        }
		
		[DomainSignature]
		public virtual TdkTudieukhien MaTDK
        {
            get { return maTDK; }
			set
			{
				maTDK = value;
			}
        }
		
		[XmlIgnore]
		public virtual IList<TdCayden> TdCaydens
        {
            get { return tdCaydens; }
            protected set
			{
				tdCaydens = value;
			}
        }
		
		[XmlIgnore]
		public virtual IList<TdDaynguon> TdDaynguons
        {
            get { return tdDaynguons; }
            protected set
			{
				tdDaynguons = value;
			}
        }
		
        #endregion
    }
}